/**
 * Description:
 * Date: 2025-10-08
 * Time: 23:24
 */

//this关键字总结：1.可以通过this访问当前对象的成员变量
//              2.可以通过this访问当前对象的非静态的成员方法
//              3.可以通过this访问当前对象 其它的构造方法
public class Demo {
    public String name;
    public int age;

    //构造方法：一个特殊的成员方法，在创建对象时自动调用，并且在整个对象的生命周期中只调用一次
    //构造方法的创建：方法名必须和类型一样，没有返回值，viod也不行
    //  类名(){
    //   方法体
    // }

    Demo(){
        //this可以在构造方法中调用其它的构造方法，但是不能两边同时调用
        //调用条件，1.this()必须是此构造方法的第一条语句，  2. 是直接在this()的()中直接写所调用构造方法的参数
        this("lisi",20);
        System.out.println("构造方法被this调用了.......");
    }

    //构造方法可以发生重载
    Demo(String name, int age){

        this.name = name;
        this.age = age;
        System.out.println("通过构造方法对成员变量进行了初始化....");
    }

    public void printDemo(){

        System.out.println(this.name + "今年" + this.age + "岁了");
    }

    public static void main(String[] args) {
        //如果你没有写构造方法，编译器会默认创建一个不带参数的构造方法
        //关键字new后面的Demo() 就是构造方法，在进行类的实例化时只调用一次，作用：对成员变量进行初始化

        Demo demo = new Demo(); //所以通过关键字new实例化一个对象的过程即伴随着：
//                                               1.为对象分配合适的内存空间
//                                               2.调用合适的构造方法

      //Demo demo1 = new Demo("zhangsan", 19);
        demo.printDemo();

    }
}
